package com.lingyu.jsjx.domain;

import java.util.Date;
import java.util.List;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 学生培养对象 jsjx_student_education
 * 
 * @author ruoyi
 * @date 2025-08-08
 */
@Data
@TableName("jsjx_student_education")
public class StudentEducation extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 记录唯一标识ID */
    @TableId(type = IdType.AUTO,value = "student_id")
    private Long studentId;

    /** 学生姓名 */
    @Excel(name = "学生姓名")
    private String studentName;

    /** 学号 */
    @Excel(name = "学号")
    private String studentNo;

    /** 所在班级id */
    private Long classId;

    /** 所在班级name */
    @Excel(name = "所在班级")
    private String className;

    /** 培养类型id */
    private Long educationTypeId;

    /** 培养类型name */
    @Excel(name = "培养类型")
    private String educationTypeName;

    /** 培养形式id */
    private Long educationModeId;

    /** 培养形式name */
    @Excel(name = "培养形式")
    private String educationModeName;

    /** 指导教师id */
    private Long instructorId;

    /** 指导教师name */
    @Excel(name = "指导教师")
    private String instructorName;

    /** 开课时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开课时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startDate;

    /** 结课时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "结课时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endDate;

    /** 学生作品文件路径 */
    private String studentWorkFileId;

    /** 指导内容 */
    @Excel(name = "指导内容")
    private String guidanceContent;

    /** 获奖情况 */
    @Excel(name = "获奖情况")
    private String awards;

    @TableField(exist = false)
    private List<FileInfo> studentWorkFileList;

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("studentId", getStudentId())
            .append("studentName", getStudentName())
            .append("studentNo", getStudentNo())
            .append("classId", getClassId())
            .append("className", getClassName())
            .append("educationTypeId", getEducationTypeId())
            .append("educationTypeName", getEducationTypeName())
            .append("educationModeId", getEducationModeId())
            .append("educationModeName", getEducationModeName())
            .append("instructorId", getInstructorId())
            .append("instructorName", getInstructorName())
            .append("startDate", getStartDate())
            .append("endDate", getEndDate())
            .append("studentWorkFileId", getStudentWorkFileId())
            .append("guidanceContent", getGuidanceContent())
            .append("awards", getAwards())
            .append("createBy", getCreateBy())
            .append("createByName", getCreateByName())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateByName", getUpdateByName())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
